home *** CD-ROM | disk | FTP | other *** search
-
- % Demonstration für TOY Prolog
-
- % Verwandtschaftsbeziehungen
-
- % (c) 1986 JJK
-
- %%% Zuerst ein paar Regeln über die Verwandtschaftsbeziehungen :
-
- mann(X) :- vater(X, _).
- frau(X) :- mutter(X, _).
-
- bruder(X, Y) :- mann(X), vater(F, X), vater(F, Y).
- bruder(X, Y) :- mann(X), mutter(M, X), mutter(M, Y).
-
- schwester(X, Y) :- frau(X), vater(F, X), vater(F, Y).
- schwester(X, Y) :- frau(X), mutter(M, X), mutter(M, Y).
-
- kind(X, Y) :- vater(Y, X) ; mutter(Y, X).
-
- elter(X, Y) :- vater(X, Y) ; mutter(X, Y).
-
- großmutter(X, Y) :- mutter(X, E), elter(E, Y).
- großvater(X, Y) :- vater(X, E), elter(E, Y).
-
- onkel(X, Y) :- bruder(X, E), elter(E, Y).
- tante(X, Y) :- schwester(X, E), elter(E, Y).
-
- vorfahr(X, Y) :- elter(X, Y).
- vorfahr(X, Y) :- kind(Y, E), vorfahr(X, E).
-
- nachkomme(X, Y) :- kind(X, Y).
- nachkomme(X, Y) :- elter(E, X), nachkomme(E, Y).
-
-
- %%% Jetzt ein paar Fakten :
-
- mann(otto). % Otto hat keine Kinder
-
- frau(anna). % Anna auch nicht
-
- vater(egon, vera).
- mutter(ute, vera).
-
- vater(willibald, hugo).
- mutter(helga, hugo).
-
- vater(hugo, otto). vater(hugo, anna).
- mutter(vera, otto). mutter(vera, anna).
-
- % Und ein paar Anfragen dazu :
-
- :- nl, großvater(X, otto), display(X), nl, fail.
- :- nl, großmutter(X, anna), display(X), nl, fail.
- :- nl, schwester(X, otto), display(X), nl, fail.
- :- nl, vorfahr(X, otto), display(X), nl, fail.
-
- %%% Jetzt viele, viele Fakten :
-
- % Quelle : Mt 1, 1-16
-
- vater(abraham, isaak).
- vater(isaak, jakob).
- vater(jakob, juda). % und dessen Brüder ...
- vater(juda, perez).
- vater(juda, serach).
- mutter(tamar, perez).
- mutter(tamar, serach).
- vater(perez, hezron).
- vater(hezron, ram).
- vater(ram, amminadab).
- vater(amminadab, nachschon).
- vater(nachschon, salmon).
- vater(salmon, boas).
- mutter(rahab, boas).
- vater(boas, obed).
- mutter(rut, obed).
- vater(obed, isai).
- vater(isai, david). % der KÖNIG David !
- vater(david, salomo). % , dessen Mutter die Frau des Urija war.
- vater(salomo, rehabeam).
- vater(rehabeam, abija).
- vater(abija, asa).
- vater(asa, joschafat).
- vater(joschafat, joram).
- vater(joram, usija).
- vater(usija, jotam).
- vater(jotam, ahas).
- vater(ahas, hiskija).
- vater(hiskija, manasse).
- vater(manasse, amon).
- vater(amon, joschija).
- vater(joschija, jojachin). % und dessen Brüder, zur Zeit der babylonischen
- % Gefangenschaft.
- vater(jojachin, schealtiel). % nach der babylonischen Gefangenschaft.
- vater(schealtiel, serubbabel).
- vater(serubbabel, abihud).
- vater(abihud, eljakim).
- vater(eljakim, azor).
- vater(azor, zadok).
- vater(zadok, achim).
- vater(achim, eliud).
- vater(eliud, eleasar).
- vater(eleasar, mattan).
- vater(mattan, jakob_). % das war ein anderer Jakob als der obige ...
- vater(jakob_, josef).
-
- ehemann(josef, maria).
- mutter(maria, jesus).
-
- % noch eine Regel für Josef :
-
- vater(X, Y) :- ehemann(X, M), mutter(M, Y).
-
- % Und jetzt eine Anfrage :
-
- :- nl, vorfahr(X, jesus), display(X), nl, fail.
-
- end.
-
-